package org.example.springblogg.model;

import lombok.Data;
import org.example.springblogg.enums.ResultStatus;

@Data
public class Result<T> {

    //业务码：200-成功  -1：失败    -2：未登录
    private ResultStatus code;

    //错误信息：
    private String errMsg;

    //接口响应的数据：
    private T data;

    //成功的时候调用的方法：
    public static <T> Result<T> success(T data){
        Result<T> result = new Result<>();
        result.setCode(ResultStatus.SUCCESS);
        result.setErrMsg("");
        result.setData(data);
        return result;
    }

    //失败的时候返回的方法：
    public static <T> Result<T> fail(String errMsg){
        Result result = new Result();
        result.setCode(ResultStatus.FAIL);
        result.setErrMsg(errMsg);
        result.setData(null);
        return result;
    }

    //失败的时候返回详细的信息：
    public static <T> Result<T> fail(String errMsg, T data){
        Result result  = new Result();
        result.setCode(ResultStatus.FAIL);
        result.setErrMsg(errMsg);
        result.setData(data);
        return result;
    }

}
